The present invention relates generally to processing circuits, and, more particularly, to a method and apparatus for booting a processor circuit.
Many processors have a “power-on reset” (POR) configuration stored in non-volatile memories, which gives the processors the flexibility to accommodate a large number of configuration parameters. Configuration parameters generally include frequencies of the various functional blocks of the processor (or of a system on a chip, SOC) such as cores and double data rate (DDR) memories, pin mixing configurations, etc. If the non-volatile memory that houses the POR configuration fails, the processing system may hang during boot or system reset. When a processing system is initially powered on, the first piece of code that runs is the boot loader. The boot loader loads the operating system and applications programs. However, there can be instances where the boot loader cannot be accessed due to a hardware failure. For example, the boot loader can become corrupted due to aging of flash devices. Failure of the system to fetch either the POR configurations or boot loader can be fatal to the system.
Known methods for recovering from a failure to fetch the POR configurations involve on-board switch selection for fetching the POR configuration from a different non-volatile memory or for selecting some default POR configuration. Known methods of recovery from a failure to fetch the boot loader involve updating the POR configuration by re-programming in order to fetch the boot loader from a different location of the same non-volatile memory or re-programming the boot loader using an external program. Such known methods of detection and recovery involve manual intervention, which is time consuming and cumbersome. Another drawback is that the detection of such failures is not automatic, consequently leading to high system downtimes.
Thus it would be advantageous to provide a means for automatically detecting and recovering from such failures.